1. Field of the Invention
This invention relates to the execution of an environment in a window of another environment or operating system.
2. Background
OpenStep.TM. is an open, high-volume portable standard for object-oriented computing. It provides a standard application programming interface (API). The OpenStep specification is based on NeXTStep. NeXTStep.TM. is an object-oriented operating system of NeXT Computer, Inc.
The NeXTStep Window Server running in the NeXT environment is a low-level process that is responsible for drawing images to the screen and sending events to applications. The NeXTStep Window Server manages the screen, keyboard, and mouse.
The NeXTStep Window Server includes a Display Postscript interpreter that performs the actual drawing of lines, text, and images. Postscript is a device-independent graphics description language that processes commands to perform line drawing, typesetting, and image presentation on the screen and printer output.
In addition to providing graphic user interface (GUI) capabilities, NeXTStep provides an application development environment. In addition to the development environment, the NeXTStep Application Kit, or App Kit, provides object classes for providing functionality to an application.
The NeXTStep environment runs on the Mach operating system (OS). The Mach OS is a microkernel-based operating system. A microkernel-based OS provides a basic level of services with the bulk of the operating system services supplied by user-level services. For example, the Mach kernel provides process management, memory management, communication and Input/Output services. Services such as files and directories are handled by user-level processes.
The communication service provided by the Mach OS uses a data structure called a port A port is analogous to a mailbox. A sender (e.g., a thread, or executable subcomponent of a process) communicates with a receiver (e.g., thread of another process) by writing a message to the mailbox, or port. The receiver retrieves the sender's message from the port.
In the above example, the sender's message is not actually stored in the port. The message is stored in a message queue. The port contains a count of the number of messages in the message queue. When a port is created, an integer that identifies the port is sent back to the creator (e.g., a thread). The identifier is used to access the port to send or receive a message.
NeXT Computer, Inc. provides a technology referred to as Portable Distributed Objects (PDO). PDO provides the ability to use distributed object classes to write programs on non-NeXT platforms (e.g., HP, SunOS, and Solaris). PDO also provides Mach port emulation facilities.
Solaris.TM. is a UNIX operating environment that can run on multiple hardware platforms such as Intel x86, SPARC, and PowerPC processors. OpenWindows.TM. is a windowing system based on the X11 windowing specification that runs in Solaris. The X11/DPS is a windowing system that runs in OpenWindows. Solaris, OpenWindows, and X11/DPS are products that are available from Sun Microsystems, Inc. (Sun Microsystems, Inc., OpenWindows, X11/DPS, and Solaris are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and certain other countries.)
The NeXTStep environment generates output using the entire screen. It would be beneficial to be able to run the NeXTStep/OpenStep environments in another environment such as Solaris such that the NeXTStep/OpenStep environment runs within a window of the environment. Prior emulation schemes provide emulation by emulating system-level instruction sets. It would be beneficial to provide emulation capabilities at the Postscript level.